/*******************************************************************************
PaddleEntity.h

	Handles all paddle entities used in the game.
*******************************************************************************/

#pragma once

#include <string>
#include "Entity.h"				// The base class
#include "EntityResource.h"		// The entity data
#include "PaddleController.h"	// The controller
#include "Physics.h"			// Collision detection

class PaddleEntity: public Entity
{
public:
	// Used to get the ID associated with the type of entity
	static const std::string Type;
	// A constructor :)
	PaddleEntity(EntityResource& entityData);
	// Set the controller
	void SetController(PaddleController* pController) { m_pController = pController; }
	// Get the controller
	PaddleController* GetController(void) { return m_pController; }
	// Uses data from a controller to update the entity
	void Update(float fElapsed);
protected:
	// The controller
	PaddleController* m_pController;
	// The speed of the paddle
	float m_fSpeed;
}; // class PaddleEntity: public Entity